package smecta.client.print.util.web;

import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;


import java.util.List;

@tk.mybatis.mapper.annotation.RegisterMapper
public interface InsertSelectiveListMapper <T>{

    /**
     * 批量插入，支持批量插入的数据库可以使用，例如MySQL,H2等，另外该接口限制实体包含`id`属性并且必须为自增列
     * null的属性不会保存(只判断第一个对象的)，会使用数据库默认值
     *
     * @param recordList
     * @return
     */
    @Options(useGeneratedKeys = true)
    @InsertProvider(type = SpecialSelectiveProvider.class, method = "dynamicSQL")
    int insertSelectiveList(List<? extends T> recordList);

}
